<?php

class Gallery extends Controller {
	
	private $do = 'content';
	private $msg;
		
	function Gallery() {
		parent::Controller ();
		$this->lang->load( 'admin', 'vietnamese' );
		$this->load->helper( 'admin_helper' );
		$this->load->helper( 'link_helper' );
		
		$this->load->model('admin/gallery_model');
		$this->load->model('admin/cat_model');
		
		check_login();
	}
	
	function index() {
		$menu_cat	= array();	
		$cat_id			= (int)$this->uri->segment(4);	
		$page_current	= (int)$this->uri->segment(5);
		$total			= 0; // Tổng số bản ghi
		$page_item 		= 10; // Số bản tin trên 1 trang
		
		$items = $this->gallery_model->list_files( $cat_id, $page_item, $page_current, $total );
		
		/**
    	 * Phân trang
    	 */		
    	$this->load->library('pagination');
    	$config['base_url'] 	= admin_link( 'gallery/index/'.$cat_id );
		$config['total_rows'] 	= $total;
		$config['per_page']		= $page_item; 
		$config['cur_page']		= $page_current;
			 
		$this->pagination->initialize( $config );
		
		/**
		 * Chủ dề
		 */
		admin_cat( 0, 3, $menu_cat );
		
		$data = array(
			'title'		=> 'Thư viện :: Danh sách file',
			'do'		=> $this->do,	
			'msg'		=> $this->msg,
			'menu_cat'	=> $menu_cat,
			'items'		=> $items,
			'paging'	=> $this->pagination->create_links(),
			'cat_id'	=> $cat_id,
			'p_current'	=> $page_current
		);
				
		$this->load->view ( ADMINPATH . 'admin_header', $data );
		$this->load->view ( ADMINPATH . 'gallery_list', $data );
		$this->load->view ( ADMINPATH . 'admin_footer', $data );
	}
	
	/**
	 * Thêm nhiều file cùng 1 lúc
	 *
	 */
	function add() {
		$menu_cat = array();	
		
		if (isset( $_POST['submit'] )) {
			
			$config = array(
	        	'upload_path'	=> MYN_UPLOAD_GALLERY,
	        	'allowed_types'	=> MYN_UPLOAD_GALLERY_TYPE,
	        	'max_size'		=> MYN_UPLOAD_MAX_FILE
	        );
	        
	        $this->load->library('upload', 	$config);
	        
	        $files = $this->upload->multiple_upload() ;
	        
	        if( $files ){
	        	for ( $i = 0; $i < 5; $i++ ) {
	        		if ( isset( $files[$i] ) ) {
						
						$data = array(
							'cat_id'		=> (int)$_POST['cat'],
							'name'			=> $files[$i]['raw_name'],
							'file_type'		=> $files[$i]['file_ext'],
							'size'			=> $files[$i]['file_size'],
							'filename'		=> $files[$i]['file_name']
						);		
										
						$this->gallery_model->add_files( $data );						
					}
	        	}
	        	$this->msg[] = 'Quá trình upload thành công';
	        	
	        }else $this->msg[] = 'Có lỗi xảy ra trong quá trình upload';
		}
		
		/**
		 * Chủ dề
		 */
		admin_cat( 0, 3, $menu_cat );
		
		$data = array(
			'title'		=> 'Thư viện :: Thêm ảnh mới',
			'do'		=> $this->do,	
			'msg'		=> $this->msg,
			'menu_cat'	=> $menu_cat
		);
				
		$this->load->view ( ADMINPATH . 'admin_header', $data );
		$this->load->view ( ADMINPATH . 'gallery_add', $data );
		$this->load->view ( ADMINPATH . 'admin_footer', $data );
	}

	/**
	 * Duyệt ảnh
	 *
	 * Sử dụng trong chọn ảnh vào bài viết
	 */
	function browser() {
		
		$menu_cat		= array();	
		$cat_id			= (int)$this->uri->segment(4);	
		
		$page_current	= (int)$this->uri->segment(5);
		$total			= 0; // Tổng số bản ghi
		$page_item 		= 9; // Số bản tin trên 1 trang
		
		$items = $this->gallery_model->list_files( $cat_id, $page_item, $page_current, $total );
		
		/**
    	 * Phân trang
    	 */		
    	$this->load->library('pagination');
    	$config['base_url'] 	= admin_link( 'gallery/browser/'.$cat_id );
		$config['total_rows'] 	= $total;
		$config['per_page']		= $page_item; 
		$config['cur_page']		= $page_current;
		$config['uri_segment'] 	= 1;	
		$config['num_links'] 	= 1; 
		$config['next_link'] 	= '&gt;';
		$config['prev_link'] 	= '&lt;';
		$config['first_link'] 	= '&lt;&lt;';
		$config['last_link'] 	= '&gt;&gt;';
		
		$this->pagination->initialize( $config );
		
		/**
		 * Chủ dề
		 */
		admin_cat( 0, 3, $menu_cat );
		
		$data = array(
			'title'		=> 'Chọn ảnh :: Danh sách',
			'do'		=> $this->do,	
			'msg'		=> $this->msg,
			'menu_cat'	=> $menu_cat,
			'items'		=> $items,
			'cat_id'	=> $cat_id,
			'paging'	=> $this->pagination->create_links()
		);
		
		$this->load->view ( ADMINPATH . 'gallery_header', $data );
		$this->load->view ( ADMINPATH . 'gallery_browser', $data );
		$this->load->view ( ADMINPATH . 'gallery_footer', $data );
	}
	
	function edit() {
		$id = (int)$this->uri->segment(4);
		
		if ( isset( $_POST['submit']) ) {
			if ( trim($_POST['name']) ) {
				$this->gallery_model->update_info();
				$this->msg[] = 'Cập nhập thành công';
			}
		}
		
		$row = $this->gallery_model->select_data( $id );
		
		if ( $row ) {
			
			$data = array(
				'title'	=> 'Thư viện :: Sửa thông tin file',
				'do'	=> $this->do,	
				'msg'	=> $this->msg,
				'rows'	=> $row
			);
			
			$this->load->view ( ADMINPATH . 'admin_header', $data );
			$this->load->view ( ADMINPATH . 'gallery_edit', $data );
			$this->load->view ( ADMINPATH . 'admin_footer', $data );
			
		}else show_error('Không tồn tại file này');
	}
	
	function del() {
		$cat_id = (int)$this->uri->segment(4);
		$page_old = (int)$this->uri->segment(5);
		$id = (int)$this->uri->segment(6);
		
		$row = $this->gallery_model->select_data( $id );
		
		if ( $row ) {
			$url_back = admin_link( 'gallery/index/'.$cat_id.'/'.$page_old );
			
			// Delete 
			$this->gallery_model->del_info( $row['id'] );			
			@unlink( MYN_UPLOAD_GALLERY.$row['filename'] );	
			
			// Backlink		
			//echo '<meta http-equiv="refresh" content="0;URL='.$url_back.'" />';
			redirect( $url_back, 'refresh' );
			
		}else show_error('Không tồn tại file này');
		
	}
	
	/**
	 * Duyệt ảnh
	 *
	 * Sử dụng trong chọn ảnh vào bài viết trong bộ editor
	 */
	function editor() {
		
		$menu_cat		= array();	
		$cat_id			= (int)$this->uri->segment(4);	
		
		$page_current	= (int)$this->uri->segment(5);
		$total			= 0; // Tổng số bản ghi
		$page_item 		= 9; // Số bản tin trên 1 trang
		
		$items = $this->gallery_model->list_files( $cat_id, $page_item, $page_current, $total );
		
		/**
    	 * Phân trang
    	 */		
    	$this->load->library('pagination');
    	$config['base_url'] 	= admin_link( 'gallery/editor/'.$cat_id );
		$config['total_rows'] 	= $total;
		$config['per_page']		= $page_item; 
		$config['cur_page']		= $page_current;
		$config['uri_segment'] 	= 1;	
		$config['num_links'] 	= 1; 
		$config['next_link'] 	= '&gt;';
		$config['prev_link'] 	= '&lt;';
		$config['first_link'] 	= '&lt;&lt;';
		$config['last_link'] 	= '&gt;&gt;';
		
		$this->pagination->initialize( $config );
		
		/**
		 * Chủ dề
		 */
		admin_cat( 0, 3, $menu_cat );
		
		$data = array(
			'title'		=> 'Chọn ảnh :: Danh sách',
			'do'		=> $this->do,	
			'msg'		=> $this->msg,
			'menu_cat'	=> $menu_cat,
			'items'		=> $items,
			'cat_id'	=> $cat_id,
			'paging'	=> $this->pagination->create_links()
		);
		
		$this->load->view ( ADMINPATH . 'gallery_header', $data );
		$this->load->view ( ADMINPATH . 'gallery_browser_editor', $data );
		$this->load->view ( ADMINPATH . 'gallery_footer', $data );
	}
	
/**
	 * Thêm nhiều file cùng 1 lúc
	 *
	 */
	function one() {
		$type = (int)$this->uri->segment(4);	
	
		$menu_cat = array();	
		
		if (isset( $_POST['submit'] )) {
			
			$config = array(
	        	'upload_path'	=> MYN_UPLOAD_GALLERY,
	        	'allowed_types'	=> MYN_UPLOAD_GALLERY_TYPE,
	        	'max_size'		=> MYN_UPLOAD_MAX_FILE
	        );
			
			$this->load->library('upload', $config);
		
			if ( ! $this->upload->do_upload())
				$this->msg[] = $this->upload->display_errors();				
			else {
				
				$files = $this->upload->data();
				
				$data = array(
					'cat_id'		=> isset( $_POST['cat'] ) ? (int)$_POST['cat'] : 0,
					'name'			=> $files['raw_name'],
					'file_type'		=> $files['file_ext'],
					'size'			=> $files['file_size'],
					'filename'		=> $files['file_name']
				);		
								
				$this->gallery_model->add_files( $data );
				
				if ( $type == 1 ) 
					$back = admin_link('gallery/editor');
				else 
					$back = admin_link('gallery/browser');
					
				redirect( $back, 'refresh');
				
			}		
		}
		
		/**
		 * Chủ dề
		 */
		admin_cat( 0, 3, $menu_cat );
		
		$data = array(
			'title'		=> 'Thư viện :: Thêm ảnh mới',
			'do'		=> $this->do,	
			'msg'		=> $this->msg,
			'menu_cat'	=> $menu_cat,
			'form'		=> admin_link( 'gallery/one/'.$type )
		);
				
		$this->load->view ( ADMINPATH . 'gallery_header', $data );
		$this->load->view ( ADMINPATH . 'gallery_one', $data );
		$this->load->view ( ADMINPATH . 'gallery_footer', $data );
	}
}
?>